package com.wmcsk.dl.dl.utils;

import java.util.ArrayList;
import java.util.List;

/**
 * 自定义的一个可像数组一样存取数据的map
 * @author 刘红亮  2015年6月16日 下午3:00:48
 */
public class ArrayMap<E,F>{
	List<E> keyList=new ArrayList<E>();
	List<F> valueList=new ArrayList<F>();
	/**
	 * 在末尾加入数据
	 * @param key
	 * @param value
	 */
	public void add(E key,F value){
		keyList.add(key);
		valueList.add(value);
	}
	/**
	 * 在指定位置处加入数据
	 * @param position
	 * @param key
	 * @param value
	 */
	public void add(int position,E key,F value){
		keyList.add(position,key);
		valueList.add(position,value);
	}
	/**
	 * 根据key移除数据
	 * @param key
	 */
	public void remove(E key){
		int index= keyList.indexOf(key);
		if(index>=0){
			remove(index);
		}
	}
	/**
	 * 移除指定位置的数据
	 * @param position
	 */
	public void remove(int position){
		if(position>=0&&position<keyList.size()){
			keyList.remove(position);
			valueList.remove(position);
		}
	}
	/**
	 * 根据key 获取value
	 * @param key
	 * @return
	 */
	public F get(E key){
		int index= keyList.indexOf(key);
		if(index>=0&&index<valueList.size()){
			return valueList.get(index);
		}
		return null;
	}
	/**
	 * 获取指定位置的value
	 * @param position
	 * @return
	 */
	public F get(int position){
		if(position>=0&&position<valueList.size()){
			return valueList.get(position);
		}
		return null;
	}
}